package com.yuju.roomStatus.model;

import com.yuju.enums.CheckinTypeEnum;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class RoomTypeStatusModel implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 酒店ID
     */
    private String HotelId;

    /**
     * 对应房型ID
     */
    private String roomTypeId;

    /**
     * 对应房型名称
     */
    private String roomTypeName;

    /**
     *  超预订数。,所属表字段为hot_room_type.beyon_reserve_count
     */
    private Integer beyonReserveCount;

    /**
     * 入住类型
     */
    private Byte checkinType = CheckinTypeEnum.CHECKIN_NONE.getValue();

    /**
     * 入住标准Id
     */
    private String checkinStandardId;

    /**
     * 价格方案Id
     */
    private String priceSchemeId;

    /*公寓房*/
    /**
     * 日均价
     */
    private BigDecimal dayPrice = BigDecimal.ZERO;

    /**
     * 月租金
     */
    private BigDecimal monthPrice = BigDecimal.ZERO;

    /**
     * 门市月价-对应房型的初始月价
     */
    private BigDecimal originMonthPrice = BigDecimal.ZERO;

    /**
     * 总房价
     */
    private BigDecimal totalPrice = BigDecimal.ZERO;

    /**
     * 最低月租金
     */
    private BigDecimal lowestMonthPrice = BigDecimal.ZERO;

    /*全天房*/
    /**
     * 房价
     */
    private BigDecimal roomPrice = BigDecimal.ZERO;

    /**
     * 门市日价-对应房型的初始日价
     */
    private BigDecimal originPrice = BigDecimal.ZERO;

    /**
     * 早餐数
     */
    private Integer breakCount = 0;

    /**
     * 房型配置信息
     */
    private String info;

    /**
     * 房型第一张图片
     */
    private String img1Url;

    /**
     * 房型第二张图片
     */
    private String img2Url;

    /**
     * 房型第三张图片
     */
    private String img3Url;

    /**
     * 房型第四张图片
     */
    private String img4Url;

    /**
     * 房型第五张图片
     */
    private String img5Url;

    /**
     * 开始日期
     */
    private Date CheckinTime;

    /**
     * 结束日期
     */
    private Date CheckoutTime;

    /**
     * 可订房间数=非占用房间数+可超订数-预订房间数
     */
    private Integer reserveCount = 0;

    /**
     * 非占用房间数（排除入住、锁房和维修）
     */
    private Integer noOccupyRoomCount = 0;

    /**
     * 预订房间数（包括预订排房的和未排房的）
     */
    private Integer reserveRoomCount = 0;

    /**
     * 预订验证房间数
     */
    private Integer reserveVerifyCount = 0;

    /**
     * 预订验证是否成功
     */
    private Boolean reserveVerifyStatus = true;
}
